1. Field
The present invention relates generally to the re-launching of software application, and more specifically, to the controlled re-launching of multiple software applications.
2. Background
Advances in technology have resulted in smaller and more powerful personal computing devices. For example, there currently exist a variety of portable wireless telephones, personal digital assistants (PDAs), and paging devices that are small, lightweight, and can be easily carried by users. Typically, these devices are severely resource constrained. For example, the screen size, amount of available memory and file system space, amount of input and output capabilities and processing capability may be each limited by the small size of the device.
Some devices or platforms allow only for a single instance of an application. In such cases, only one version of the application may be executing at any one time. This limits the number of instances that can be running at any one time. Thus, in response to an attempt to re-execute a currently running application that is restricted to one instance, either the current version of the application must be terminated and an new one initiated, or the request for the re-execution must be denied where the current executing version is allowed to continue execution.
Some devices are multiple frame and allow for the windowing of different applications as displayed to a user. Such devices do not typically restrict applications to a single instance. As such, as long as the application itself does not restrict itself to one instance, the device allows the system to allow for the execution of multiple instances of such application. In such systems, the simultaneous active state of at least two instances of any one particular application, requires all the system resources needed to keep each such application in a currently executing state. Other systems are single frame systems where only one application is considered to the current application, or in other words, only one application is considered to have current focus. The current application generally receives and provides all user input and output interaction. Typically, such systems are characterized by having only a single application visible on an associated display at any one point in time. When there is a traversal between the application considered the current application and a new application targeted to be the new current application, the new target application becomes the current application and such target application fills the corresponding frame.
Applications often have different modes where a mode defines what is visible in a given frame. Some applications may be initiated in any one of a number of modes (multi-modal) while other applications may only be initiated in a single mode (single-modal). As such, a single-modal application always begins execution in the same single pre-defined state. That is, whenever, the application is launched the application displays the same user-interface (U/I) screen(s) to the user and provides the user with the same functional operation. For example, computer games are often designed to be of a single-modal type, and when launched, such applications display to the user the same start-up view of the game, typically a standard beginning point of the game. A multi-modal application, in contrast, is an application that can begin execution in any one of a multiple number of pre-defined states. As such, when such applications are launched, depending on the desired mode, such applications both display to the user the one particular desired mode and functionality of the application. For example, some email programs are designed as multi-modal applications where, for example, one mode is a “composition” mode, while, for example, another mode is a “reading new mail” mode. As such, when launched, the email program must be initiated to execute in one of the given modes.
When multi-modal applications are launched in a single-instance environment, as in any environment, such applications must begin execution in one of their given multiple modes. However, when the switch to a different mode is desired in a single instance environment, the multi-modal application must be re-launched to begin execution in the new mode. When re-launched, the previous mode information is lost and therefore cannot be retrieved upon any re-execution or re-launching of such application. As such, each of the different modes of the application must be presented as separate applications requiring consumption of their own memory, file systems, and the like. Therefore, even though the desired application may be executing before a switch between different modes, the same application must be re-executed as a separate application in the new mode. The process of shutting down and starting up applications each require significant use of the limited resources particularly in severely resource constrained devices.
Some applications are known to have multiple states where certain dynamic application state information may influence the usefulness of such application. Rather than application modes, such information may be referred to as user interface data information. Such user interface data information can include, for example, programs forward and back link information from browser applications which are useful to a user operating such applications. Where a browser is being used and a collection of forward and back links have been generated, and where then a new browser application is then executed from within the initial browser application, the operation within the new browser begins without any forward and backward links, and if the user wished to go to a previous link on the initial browser application, the user would not be presented with the option to perform such operation.
Applications that launch other applications typically have limited operational capabilities. For example, such systems do not provide for the back tracking (or re-launching) to a previously current application when an application called by the previously current application is terminated. Similarly, current systems do not provide for the passing of historical information for any re-launch of a previously current application. Currently, for example, in at least one email application, where the email application is currently executing as the current application in a “composition” mode, and while in such mode the device receives notification of the receipt of a new email message, a new email application is then executed where the new email displayed. In addition, in at least one email application, and under the same circumstances, the application, instead of executing the application in the new mode, instead keeps the current application as current and ignores the email notification message.
There is therefore a need in the art for a device or platform that supports re-launching of applications such that the re-launch includes the execution of the application using the same mode and/or state information associated with a previous launch of such application. There is also a need in the art for a device or platform that supports re-launching of multi-mode applications without the need to initiate any additional instances of the application.